Computer graphics processing systems process large amounts of data, including texture data, among others. A texture is a digital image, often rectangular, having a (u, v) coordinate space. The smallest addressable unit of a texture is a texel, which is assigned a specific (u, v) coordinate based on its location. In a texture mapping operation, a texture is mapped to the surface of a graphical model as the model is rendered to create a destination image. In the destination image, pixels are located at specific coordinates in the (x, y) coordinate system. The purpose of texture mapping is to provide a realistic appearance on the surface of objects.
The Direct3D 11 specification from MICROSOFT® defines a new kind of shader known as a compute shader that offers such features as multi-thread support to aid in the development of such graphics-intensive applications as video games. The compute shader provides access to the computing power and bandwidth of SIMD (single instruction, multiple data) cores such as those used in graphics processors. A compute shader is invoked as multiple threads, where the threads are divided into thread groups. While synchronization operations exist to provide ordering of thread execution, such synchronization techniques may be bandwidth and memory intensive.